home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / utilities / aga / agacloudgen.lha / clouds / unit-source / Req_UNIT.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1993-01-24  |  6.6 KB  |  274 lines

  1. UNIT Req;
  2.  
  3. INTERFACE
  4.  
  5. CONST
  6.   Numpairs     = 9;
  7.   DSize        = 130;
  8.   FChars       = 30;
  9.   Wildlength   = 30;
  10.   GLNODEFAULTB = 1;
  11.   SHOWINFO     = 1;
  12.   EXTSELECT    = 2;
  13.   CACHING      = 4;
  14.   GETFONTS     = 8;
  15.   INFOGADGET   = 16;
  16.   HIDEWILDS    = 32;
  17.   ABSOLUTEXY   = 64;
  18.   CACHEPURGE   = 128;
  19.   NOHALFECACHE = 256;
  20.   NOSORT       = 512;
  21.   NODRAG       = 1024;
  22.   SAVING       = 2048;
  23.   LOADING      = 4096;
  24.   DIRONLY      = 8192;
  25.  
  26. TYPE
  27.   STR80 = STRING[800];
  28.  
  29.   p_DateStamp = ^DateStamp;
  30.   DateStamp =
  31.   RECORD
  32.     ds_Days      : LONG;
  33.     ds_Minute    : LONG;
  34.     ds_Tick      : LONG;
  35.   END;
  36.  
  37.   TRStructure =
  38.   RECORD
  39.     Text         : STR;
  40.     Controls     : PTR;
  41.     Window       : PTR;
  42.     MiddleText   : STR;
  43.     PositivText  : STR;
  44.     NegativText  : STR;
  45.     Title        : STR;
  46.     KeyMask      : WORD;
  47.     textcolor    : WORD;
  48.     detailcolor  : WORD;
  49.     blockcolor   : WORD;
  50.     versionnumber: WORD;
  51.     rfu1         : LONG;
  52.     rfu2         : LONG;
  53.   END;
  54.  
  55.   GetLongStruct =
  56.   RECORD
  57.     titlebar     : STR;
  58.     defaultval   : LONG;
  59.     minlimit     : LONG;
  60.     maxlimit     : LONG;
  61.     result       : LONG;
  62.     window       : PTR;
  63.     versionnumber: WORD
  64.     flags        : LONG;
  65.     rfu2         : LONG;
  66.   END;
  67.  
  68.   p_ESStructure = ^ESStructure;
  69.   ESStructure =
  70.   RECORD
  71.     ESStructure  : p_ESStructure;
  72.     NameLength   : WORD;
  73.     Pad          : WORD;
  74.     Node         : PTR;
  75.     thefilename  : STRING[31];
  76.   END;
  77.  
  78.   p_FileRequesterStr = ^FileRequesterStr;
  79.   FileRequesterStr =
  80.   RECORD
  81.     VersionNumber    : WORD;
  82.     Title            : STR;
  83.     DirName          : STR;
  84.     FileName         : STR;
  85.     PathName         : STR;
  86.     Window           : PTR;
  87.     MaxExtSelect     : WORD;
  88.     numlines         : WORD;
  89.     numcolumns       : WORD;
  90.     devcolumns       : WORD;
  91.     Flags            : LONG;
  92.     dirnamescolor    : WORD;
  93.     filenamescolor   : WORD;
  94.     devicenamescolor : WORD;
  95.     fontnamescolor   : WORD;
  96.     fontsizecolor    : WORD;
  97.     detailcolor      : WORD;
  98.     blockcolor       : WORD;
  99.     gagdettextcolor  : WORD;
  100.     textmessagecolor : WORD;
  101.     stringnamecolor  : WORD;
  102.     stringgagdetcolor: WORD;
  103.     boxbordercolor   : WORD;
  104.     gadgetboxcolor   : WORD;
  105.     RFU_Stuff        : STRING[36];
  106.     DateStamp        : DateStamp;
  107.     WindowLeftEdge   : WORD;
  108.     WindowTopEdge    : WORD;
  109.     FontYSize        : WORD;
  110.     FontStyle        : WORD;
  111.     ExtendedSelect   : p_ESStructure;
  112.     Hide             : STRING[32];
  113.     Show             : STRING[32];
  114.     FileBufferPos    : WORD;
  115.     FileDispPos      : WORD;
  116.     DirBufferPos     : WORD;
  117.     DirDispPos       : WORD;
  118.     HideBufferPos    : WORD;
  119.     HideDispPos      : WORD;
  120.     ShowBufferPos    : WORD;
  121.     ShowDispPos      : WORD;
  122.     Memory           : PTR;       {PRIVAT-AREA STARTS HERE}
  123.     Memory2          : PTR;
  124.     Lock             : PTR;
  125.     PrivatDirBuffer  : STRING[132];
  126.     FileInfoBlock    : PTR;
  127.     NumEntries       : WORD;
  128.     NumHiddenEntries : WORD;
  129.     filestartnumber  : WORD;
  130.     devicestartnumber: WORD;
  131.   END;
  132.  
  133. VAR ReqBase: PTR;
  134.  
  135. LIBRARY ReqBase:
  136.  
  137. -30 : PROCEDURE Centre(a0: PTR; d0,d1: WORD);
  138. -84 : FUNCTION  FileRequest(a0: PTR): LONG;
  139. -90 : FUNCTION  ColorRequester(d0: LONG): LONG;
  140. -102: PROCEDURE MakeButton(a0: PTR; a1,a2: PTR; d0,d1,d2: LONG);
  141. -114: PROCEDURE Purgefiles(a0: PTR);
  142. -126: PROCEDURE MakeGadget(a0: PTR; a1,a2: STR; d0,d1: LONG);
  143. -132: PROCEDURE MakeString(a0: PTR; a1,a2: STR; d0,d1,d2,d3: LONG);
  144. -138: PROCEDURE MakeProp(a0: PTR; d0,d1,d2: LONG);
  145. -144: PROCEDURE LinkGadget(a0: PTR; a1: STR; a3: PTR; d0,d1: LONG);
  146. -150: PROCEDURE LinkStringGadget(a0: PTR; a3: PTR; d0,d1,d2,d3,d4: LONG);
  147. -156: PROCEDURE LinkPropGadget(a0: PTR; a3: PTR; d0,d1,d2,d3,d4: LONG);
  148. -162: FUNCTION  GetString(a0,a1: STR; a2: PTR; d0,d1: LONG): BOOLEAN;
  149. -174: FUNCTION  TextRequest(a0: PTR): LONG;
  150. -180: FUNCTION  GetLong(a0: PTR): BOOLEAN;
  151.  
  152. END;
  153.  
  154. PROCEDURE SimpleRequest(a0: STR80; a1: STRING);
  155. FUNCTION  DoubleRequest(a0: STR80; a1: STRING): BOOLEAN;
  156. PROCEDURE MyRequest(VAR VNaim: STRING; tin: STRING);;
  157. PROCEDURE VaileRequest(VAR VNaim: STRING; tin: STRING);;
  158. PROCEDURE GetNumber(title: STR; min,max: BYTE; VAR Result1: BYTE);
  159. PROCEDURE CloseDown;
  160.  
  161. IMPLEMENTATION
  162.  
  163. PROCEDURE SimpleRequest;
  164.  
  165. VAR textRPtr: ^TRStructure;
  166.     Ans     : BYTE;
  167.     negText : STRING[7];
  168.  
  169. BEGIN
  170.    negText:='Resume';
  171.    NEW(textRPtr);
  172.    textRPTR^:=TRStructure(^a0,NIL,NIL,NIL,NIL,^negText,^a1,15,1,0,0,0,0,0);
  173.    Ans:=TextRequest(textRPtr);
  174.    DISPOSE(textRPtr);
  175. END;
  176.  
  177. FUNCTION DoubleRequest;
  178.  
  179. VAR textRPtr         : ^TRStructure;
  180.     Ans              : BYTE;
  181.     negText, posText : STRING[7];
  182.  
  183. BEGIN
  184.    negText:='Oh no!';
  185.    posText:='Sure!';
  186.    NEW(textRPtr);
  187.    textRPTR^:=TRStructure(^a0,NIL,NIL,NIL,^posText,^negText,^a1,15,1,0,0,0,0,0);
  188.    Ans:=TextRequest(textRPtr);
  189.    DISPOSE(textRPtr);
  190.    IF Ans=1 THEN DoubleRequest:=TRUE
  191.             ELSE DoubleRequest:=FALSE;
  192. END;
  193.  
  194. PROCEDURE MyRequest;
  195.  
  196. VAR DirFi  : STRING[DSize];
  197.     PahtN  : STRING[DSize+FChars+2];
  198.     Sze    : STRING[10];
  199.     ReqPtr : ^FileRequesterStr;
  200.  
  201. BEGIN
  202.   NEW(ReqPtr);
  203.   DirFi:='FONTS:';
  204.   ReqPtr^:=FileRequesterStr(
  205.      0, ^tin, ^DirFi, ^VNaim, ^PahtN, NIL, 0, 15, 25, 10, GETFONTS+LOADING,
  206.      3, 1, 3, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, CHR(0), datestamp(0,0,0),
  207.      0, 0, 0, 0, NIL, "", "", 0, 0, 0, 0, 0, 0, 0, 0, NIL, NIL, NIL, "",
  208.      NIL, 0, 0, 0, 0);
  209.   IF FileRequest(ReqPtr)<>0 THEN
  210.   BEGIN
  211.     Sze:=RealStr(ReqPtr^.FontYSize,0);
  212.     DELETE(Sze,1,1);
  213.     DELETE(PahtN,LENGTH(PahtN)-4,5);
  214.     Vnaim:=PahtN+"/"+Sze;
  215.   END;
  216.   DISPOSE(ReqPtr);
  217. END;
  218.  
  219. PROCEDURE VaileRequest;
  220.  
  221. VAR DirFi  : STRING[DSize];
  222.     PahtN  : STRING[DSize+FChars+2];
  223.     Sze    : STRING[10];
  224.     ReqPtr : ^FileRequesterStr;
  225.  
  226. BEGIN
  227.   NEW(ReqPtr);
  228.   DirFi:='RAM:';
  229.   ReqPtr^:=FileRequesterStr(
  230.      0, ^tin, ^DirFi, ^VNaim, ^PahtN, NIL, 0, 15, 25, 10, LOADING,
  231.      3, 1, 3, 3, 1, 2, 1, 1, 1, 1, 1, 1, 1, CHR(0), datestamp(0,0,0),
  232.      0, 0, 0, 0, NIL, "", "", 0, 0, 0, 0, 0, 0, 0, 0, NIL, NIL, NIL, "",
  233.      NIL, 0, 0, 0, 0);
  234.   IF FileRequest(ReqPtr)<>0 THEN VNaim:=PahtN
  235.                             ELSE VNaim:='';
  236.   DISPOSE(ReqPtr);
  237. END;
  238.  
  239. PROCEDURE GetNumber;
  240.  
  241. VAR Zahl: ^GetLongStruct;
  242.  
  243. BEGIN
  244.   NEW(Zahl);
  245.   Zahl^:=GetLongStruct(title,Result1,min,max,0,NIL,0,0,0);
  246.   IF GetLong(Zahl) THEN Result1:=Zahl^.Result;
  247.   DISPOSE(Zahl);
  248. END;
  249.  
  250. PROCEDURE CloseDown;
  251.  
  252. BEGIN
  253.   CloseLib(ReqBase);
  254. END;
  255.  
  256. BEGIN
  257.   OpenLib(ReqBase,'req.library',0);
  258.   ADDEXITSERVER(CloseDown);
  259.   IF ReqBase=NIL THEN
  260.   BEGIN
  261.     IF FromWB THEN
  262.     BEGIN
  263.       ASSIGN(INPUT, 'CON:50/100/540/60/Sorry :');
  264.       RESET(INPUT);
  265.       OUTPUT:=INPUT;
  266.       WRITELN("Unable to open req.library!!!!");
  267.       DELAY(100);
  268.     END
  269.     ELSE
  270.       WRITELN("Unable to open req.library!!!!");
  271.     HALT(10);
  272.   END
  273. END.
  274.